One problem with current implementations is the inability to create a single unified end-user access point which can effectively consolidate multiple decentralized sources of user assistance information (i.e., User Assistance Repository (UAR)) for any and all applications a user may encounter. There is no known existing solution to the problem. Current sources are usually tied to a particular application via a link from the application or they are centralized to cover multiple applications.
However, there are several shortcomings of linking each application to a UAR via the application interface. First, it does not provide a single access point for the user which works across all applications. Each application has its own access point with its own user interface conventions. Users often struggle to navigate application menus, and such an issue is one of the many problems that UARs are meant to alleviate. Accordingly, the problem is made worse as the number of applications that the modern user population needs to navigate increases. Thus, requiring the user to learn all of these user interfaces in order to get help in the first place is counterproductive.
In addition, the traditional systems of launching help from the application do not effectively incorporate the inclusion of third-party UARs. Usually, the application is built with a particular UAR in mind or at least needs to be configured to link to the UAR. Unless the application owner or administrator specifically does something to enable inclusion of such third-party UARs, it cannot occur. Furthermore, this is often problematic for many reasons; for example, the source of the UAR may not be the owner/administrator of the underlying application or the cost of modifying the application may be prohibitive or not possible (i.e., not having access to proprietary code, APIs, etc.). An effective solution would allow easy access to the UAR without requiring the cooperation of the owner/administrator of the application. Furthermore, there are existing systems which consolidate user assistance material across multiple applications. This is usually done by consolidating the information in a single repository or a cooperating group that can be searched as a whole. This method does not work when there are multiple sources of user assistance being supplied by independent sources.
Various methods can be used to gather an application context from the user state, search one or more repositories, and then return results to the user. An external client side component is sometimes used to launch the user assistance without the need to modify the underlying application. Nonetheless, the shortcoming of these systems is that they do not effectively handle large numbers of completely independent UARs with heterogeneous user populations and varying application usages.
Furthermore, without a way to filter out UARs which are irrelevant to the current user state, all of the repositories would need to be searched to determine whether they have matching content for the user's current situation. Such searching is not only inefficient and time-consuming but often problematic. The UARs often have associated authentication control and the user would need to be authenticated for each UAR in order to search it (whether or not it is relevant). The user would be presented with multiple login dialogs if the authentication had not been already cached.
Additionally, the searches of the repositories are often designed to return results on a sliding scale by best match. In cases where there are no high-quality matches, the searches will return poor matches. These poorly-matching search results are not only distracting to the user, but they can also be inappropriate and result in help for the wrong application being offered to the user. Hence, for these and other reasons, improvements are needed in the art.